#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <memory>
#include "Dict.hpp"
#include "UdpServer.hpp"

using namespace dict_ns;

void Usage(std::string proc) // ./udpserver port
{
    std::cout << "Usage\n\t" << proc << "local_port\n"
        << std::endl;
}

int main(int argc, char* argv[])
{
    if (argc != 2)
    {
        Usage(argv[0]);
        exit(1);
    }
    EnableScreen();

    Dict dict;

    uint16_t port = std::stoi(argv[1]);

    std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(port,
        std::bind(&Dict::Translate, &dict, std::placeholders::_1, std::placeholders::_2)); // C++14

    usvr->InitServer();
    usvr->Start();

    return 0;
}